package com.yufubao.service.service.management.authorization;

import com.baomidou.mybatisplus.extension.service.IService;
import com.yufubao.framework.result.PageUtils;
import com.yufubao.framework.result.ResponseResult;
import com.yufubao.model.dto.management.sys.ChangeStatusDto;
import com.yufubao.model.dto.management.sys.SaveRoleMenuDto;
import com.yufubao.model.dto.management.sys.UpdateRoleMenuDto;
import com.yufubao.model.pojo.management.authorization.RoleEntity;

import java.util.List;
import java.util.Map;

/**
 * 角色信息表
 *
 * @author zhangzhan
 * @email 52194440@qq.com
 * @date 2024-09-04 15:00:26
 */
public interface RoleService extends IService<RoleEntity> {

    /**
     * 角色分页查询
     * @param params
     * @return
     */
    PageUtils queryPage(Map<String, Object> params);

    /**
     * 根据人员id查询角色信息
     * @param managerId
     * @return
     */
    List<String> selectRoleKeyByManagerId(Long managerId);

    /**
     * @description 修改状态
     * @param dto
     * @return com.yufubao.framework.result.ResponseResult
     * @author zhangyiheng
     * @date 2024/9/12 18:12
     */
    ResponseResult changeStatusById(ChangeStatusDto dto);

    /**
     * @description 新增角色
     * @param saveRoleMenuDto
     * @return com.yufubao.framework.result.ResponseResult
     * @author zhangyiheng
     * @date 2024/9/12 18:30
     */
    ResponseResult saveRoleMenu(SaveRoleMenuDto saveRoleMenuDto);

    /**
     * @description 修改角色回显
     * @param id
     * @return com.yufubao.framework.result.ResponseResult<com.yufubao.model.vo.management.sys.SelectRoleByIdVO>
     * @author zhangyiheng
     * @date 2024/9/12 19:08
     */
    ResponseResult selectRoleById(Long id);

    /**
     * @description 修改角色
     * @param updateRoleMenuDto
     * @return com.yufubao.framework.result.ResponseResult
     * @author zhangyiheng
     * @date 2024/9/12 19:25
     */
    ResponseResult updateRole(UpdateRoleMenuDto updateRoleMenuDto);

    /**
     * @description 批量删除
     * @param ids
     * @return com.yufubao.framework.result.ResponseResult
     * @author zhangyiheng
     * @date 2024/9/12 19:29
     */
    ResponseResult deleteRoleByIds(Long[] ids);

    /**
     * @description 查询角色列表接口
     *
     * @return com.yufubao.framework.result.ResponseResult<com.yufubao.model.vo.management.sys.SelectUserVO>
     * @author zhangyiheng
     * @date 2024/9/12 19:38
     */
    ResponseResult listAllRole();

}

